1
HIP 에코시스템의 아키텍처적 기초
AI022Lesson 3
00:00

HIP 에코시스템 는 AMD와 NVIDIA 아키텍처 간 소스코드 호환성을 위한 얇은 추상화 계층으로 설계되었습니다. 이는 ROCm (Radeon Open Compute) 스택을 활용하며, 특히 이질적 시스템 아키텍처 (HSA) 런타임과 커널 융합 드라이버 (KFD)를 사용합니다.

1. 초기화 부트스트랩

초기화는 hsa_init(0, ...)hsaKmtOpenKFD(...)를 통해 하위 레벨 커널 드라이버 핸드셰이크로 시작됩니다. 이러한 설정 호출은 사용자 공간 응용 프로그램과 AMD GPU 하드웨어 사이의 통신 다리가 됩니다.

2. 토폴로지 및 속성 탐지

커널 실행 전 런타임은 다음 함수를 사용해 하드웨어 능력을 식별합니다: hsaKmtAcquireSystemPropertieshsaKmtGetNodeProperties를 통해 물리 메모리를 GPU 노드에 매핑하고, hsaKmtMapMemoryToGPUNodes디바이스의 페이지 테이블 가시성을 보장합니다.

3. 컴파일 파이프라인

CUDA와 HIP 사이의 다리는 두 가지 기둥에 의해 구축됩니다: hipify-perl (정규식 기반 트랜스파일러) 및 hipcc (컴파일러 래퍼).

# 포팅 워크플로 예시
hipify-perl square.cu > square.cpp
hipcc square.cpp -o square.out

4. 버전 관리 로직

호환성은 정확한 공식을 통해 보장되며, 다음 조건을 충족하도록 합니다: hipRuntimeGetVersion HSA 확장 테이블과 일치합니다:

$$\text{HIP\_VERSION} = \text{MAJOR} \times 10^7 + \text{MINOR} \times 10^5 + \text{PATCH}$$

응용 프로그램 계층 (./square.out)HIP 계층 (hipcc / 런타임 API)HSA 런타임 / 확장 테이블커널 드라이버 (KFD) 및 하드웨어
main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>